home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 036a / pmseek43.zip / PMSEEK.DOC next >
Text File  |  1991-01-03  |  22KB  |  361 lines

  1.                         *** PMSEEK Version 4.30 ***
  2.  
  3.             A File & Text Search Utility for OS/2 Presentation Manager
  4.  
  5.      Description:
  6.      --------------------------------------------------------------------------
  7.      PMSEEK allows you to search one or more disks (including NET drives on a
  8.      LAN) for files or text.  Any matches found can be browsed, edited, or
  9.      executed, by double clicking on the filename.  You can also (starting with
  10.      v2.00) execute commands (Copy, Erase, etc) against multiple found files.
  11.      The Command feature makes PMSEEK a much more useful general-purpose file
  12.      utility.  Text search capability was added in version 4.00 (for OS/2 1.2
  13.      and above only).
  14.  
  15.      Searching for Filenames:
  16.      -------------------------------------------------------------------------
  17.      PMSEEK is very flexible in the kinds of filename searches it allows.  On
  18.      the main PMSEEK dialog screen you will be prompted to enter the filename
  19.      you wish to search for.  You may specify the filename very exactly, or
  20.      you may use '*' as a wildcard character for flexible searches.  The
  21.      following examples show the kinds of results you can expect from
  22.      particular searches:
  23.  
  24.         C:*.EXE      - lists all of the .EXE files on the C: drive
  25.         *:E.EXE      - lists all occurences of E.EXE on every available drive
  26.                        (including NET drives).  This search could take awhile!
  27.         ACD:*.DOC    - search drives A: C: and D: for all .DOC files.
  28.         P*K.EXE      - list all .EXE files whose filenames start with P and
  29.                        end with K
  30.         *.TXT        - list all .TXT files found on the current default drive
  31.         TEMP*        - lists all files with names matching TEMP*.* on the
  32.                        default drive
  33.         TEMP         - lists all files with names matching TEMP.* on the
  34.                        default drive
  35.         D:\UTIL\*.EXE- lists all .EXE files contained in D:\UTIL or in any
  36.                        subdirectories chained off D:\UTIL
  37.  
  38.      Double-clicking on any filename that gets listed results in the
  39.      currently selected action (Browse, Edit, Execute, or Command) being
  40.      performed against that filename.  Note that you can double click on a
  41.      filename even as the search for additional filenames continues...  the
  42.      action will be performed, and the remainder of the search will continue
  43.      in the background.  The Browse, Edit, Execute, and Command functions are
  44.      all run in separate OS/2 sessions independent of PMSEEK, courtesy of
  45.      OS/2 multi-tasking support.  PMSEEK (starting with v2.00) uses a
  46.      "multiple selection" listbox.  This means that more than one item can be
  47.      selected by single-clicking on multiple listbox items, then
  48.      double-clicking on the last item selected.  Single-clicking on a
  49.      previously selected item will de- select it.  If the action is Browse,
  50.      Edit, or Execute, only the first selected item will be acted on (the
  51.      rest will be de-selected after the current action starts).  Multiple
  52.      selection only results in multiple actions for Command.  If a future
  53.      release, I hope to disable multiple selection unless the Command radio
  54.      button is selected.
  55.  
  56.      If you wish to do additional searches using the original dialog
  57.      screen, but do not wish to lose the earlier hit list, key in a new
  58.      search argument, and click on the 'NoClear' button, rather than on the
  59.      'Search' button...  the original list of files found will not be
  60.      cleared, and any new files found will be inserted into the existing
  61.      list.
  62.  
  63.      PMSEEK also has a SAVE button that allows saving of any search hits
  64.      to a file.  Any saved hit lists will be written to C:\SEEKSAVE.FIL.
  65.      No way is currently provided to change the name of the SAVE file.
  66.  
  67.      On the main PMSEEK window, PF3 will exit the application.  On the
  68.      PMSEEK search dialog window, the Esc key will exit the dialog.
  69.      The tab key will move between dialog input fields.
  70.  
  71.      Clicking on the CANCEL button during a search will abort the search.
  72.      This can be especially helpful during extremely long, multi-disk
  73.      searches (or mistakes ;-).
  74.  
  75.      Searching for Text:
  76.      ------------------------------------------------------------------------
  77.      Starting with version 4.00, PMSEEK includes text search capability.  This
  78.      means that in addition to searching for filenames, you may also search for
  79.      specific text strings within the located files.  If you do not wish to
  80.      search for text strings within the found files, simply do not enter
  81.      anything in the new "Enter Text to Search For" field and PMSEEK will
  82.      continue to merely search for filenames the way it did in the past.
  83.  
  84.      All text searches are case-insensitive, meaning that PMSEEK makes no
  85.      distinction between "TEXT" and "text", for example, when looking for
  86.      matches.   No special wild-cards are supported in the text search field.
  87.      If you enter more than one text search argument, for example, "net use",
  88.      PMSEEK will search for both words, but will not find a match unless they
  89.      occur together within the text being searched.
  90.  
  91.      PMSEEK is able to perform fairly rapid text searches by using the
  92.      following techniques to enhance performance:
  93.  
  94.         1) PMSEEK treats all files as if they were "binary" files and
  95.            reads them in 32K data blocks, then scans the 32K block
  96.            for a match.  By using a relatively large blocksize, PMSEEK
  97.            reduces the number of individual disk I/O requests needed to
  98.            read the file into memory.
  99.  
  100.         2) Once the 32K block has been read into memory, PMSEEK uses a
  101.            variation of the Boyer-Moore string search algorithm to search for a
  102.            match.  Rather than simply doing a "brute-force" comparison, the B-M
  103.            algorithm uses a pre-built table of "mismatch" skip values.  In a
  104.            pre-processing step, we decide for each possible character value that
  105.            could occur in the text, how many text characters to skip ahead if
  106.            that character were cause the mismatch.  We then scan the search
  107.            argument with the text from right-to-left, and if a mismatch occurs,
  108.            we then skip N characters ahead in the text (based on the skip value
  109.            found for that character in the skip table).  Use of this algorithm
  110.            (starting in v4.10) results in about a 40% improvement (average)
  111.            over the old linear search method.
  112.  
  113.      Executing Commands against selected files:
  114.      ------------------------------------------------------------------------
  115.      Starting with v1.50 of PMSEEK, you can execute commands (ie. Copy, Erase
  116.      Rename, etc) against files that you double-click on.  On the main PMSEEK
  117.      dialog screen there is a new radio button labeled "Command".  If you
  118.      select "Command" then double-click on a file, a second dialog window
  119.      will pop-up, prompting you to enter the command you wish to execute
  120.      against the selected file(s).  If you typed 'Erase', for example, and then
  121.      clicked on the 'Enter' button, PMSEEK would then erase the selected file.
  122.  
  123.      Normally PMSEEK executes commands by taking the command you entered,
  124.      appending the name of the selected file to the command string, then
  125.      executing the command string.  However, for added flexibility, you may
  126.      specify exactly where PMSEEK is to append the filename by using the '/'
  127.      sign in the entered command.  For example if you selected file
  128.      'C:\TMP\TEST.FIL', and entered the command 'COPY / C:\UTIL', PMSEEK
  129.      would then issue the command 'COPY C:\TMP\TEST.FIL C:\UTIL', substituting
  130.      the filename for the first occurence of the '/' sign in the command
  131.      string.
  132.  
  133.  
  134. |    Search Options:
  135. |    ------------------------------------------------------------------------
  136. |    Starting with PMSEEK v4.30, users can set several different search
  137. |    options.  When the "Search SubDirs" option is checked, all subdirectories
  138. |    in the search path will be searched for the file.  If it is not checked,
  139. |    only the subdirectory contained in the search argument will be searched.
  140. |    If the "Display Found Text" option is checked, any data found as part of
  141. |    a text search will be displayed above the entry showing the filename that
  142. |    the text was found in.  If "Display Found Text is enabled, the search will
  143. |    be somewhat slower than when it is not enabled, because PMSEEK must search
  144. |    to the end of all qualifying files in order to find and display all
  145. |    occurances of the text within the files.  If the "Ignore Case" option is
  146. |    checked, then any text searches will not be sensitive to upper/lower case.
  147. |
  148. |    The default search options are to Search Subdirs, to ignore case, and to
  149. |    not display found text.
  150.  
  151.  
  152. |    Drag and Drop Support:
  153. |    ------------------------------------------------------------------------
  154. |    Starting with PMSEEK v4.20, you can mark (left single-click) a filename,
  155. |    press and hold the right mouse button, then release the button over an
  156. |    EPM, PMBROWSE, or FORBROWS window or icon.  The selected file will then
  157. |    be loaded into an edit or browse window.  If multiple filenames are
  158. |    marked, PMSEEK will only send the name of the first marked file to the
  159. |    "dropped-on" window.  This restriction *may* be removed in a future
  160. |    release.
  161. |
  162. |    Note that the right mouse button press is only recognized when the mouse
  163. |    pointer is in PMSEEK's client area.  This means that PMSEEK will not
  164. |    recognize if you press the right mouse button within the "hits" listbox.
  165. |    PM seems to provide no way for applications to detect right-mouse-button
  166. |    from within a listbox.
  167. |
  168. |    When PMSEEK realizes that you've pressed the right mouse button for drag
  169. |    and drop, the mouse pointer will change to indicate that drag-and-drop
  170. |    is active.
  171. |
  172. |    PMSEEK's implementation of drag and drop uses the same conventions as
  173. |    the OS/2 File Manager for message passing, etc.  At present, the only
  174. |    applications that are known to work with PMSEEK's drag and drop are
  175. |    EPM, PMBROWSE, and FORBROWS.  You must have the appropriate versions of
  176. |    EPM, PMBROWSE, or FORBROWS for the drag and drop support to work...  It
  177. |    is not likely to work with OfficeVision.  PMSEEK can only be a
  178. |    "dropp-er"...  not a "drop-ee" (ie.  PMSEEK will not do anything useful
  179. |    if dropped-on from another application).
  180.  
  181.  
  182.      Installation:
  183.      ------------------------------------------------------------------------
  184.      PMSEEK PACKAGE can be obtained from the OS2TOOLS disk.  To install:
  185.  
  186.         1) Load a copy of PMSEEK.EXE and PMSEEK.PRO to your disk.
  187. |          If you are using OS/2 release 1.1, load PMSEEK11.EXE
  188. |          instead of PMSEEK.EXE.
  189.         2) Edit the PMSEEK.PRO file to contain the correct names and paths of
  190.            your browse and edit programs.  The sample PMSEEK.PRO file provided
  191.            with the PMSEEK package contains instructions and examples.  Be
  192.            sure the PMSEEK.PRO is placed in a subdirectory that lies in your
  193.            DPATH.
  194.         3) To invoke PMSEEK, simply enter "PMSEEK" from a command-line window,
  195.            or install PMSEEK in your "Start Programs" menu.
  196.         4) You may perform an immediate search by starting PMSEEK with a search
  197.            parameter.  For example, to start PMSEEK and have it immediately
  198.            begin searching for all .EXE files on drive C, type:
  199.  
  200.                    PMSEEK c:*.exe
  201.  
  202.            from the OS/2 command prompt. If you wish to also perform a text
  203.            search upon invocation, you may include the optional text search
  204.            parm(s).  For example to search all .EXE files on drive C: for
  205.            "IBM" you would enter:
  206.  
  207.                    PMSEEK c:*.exe ibm
  208.  
  209.  
  210.      The PMSEEK Defaults Profile
  211.      -------------------------------------------------------------------------
  212.      A profile is shipped as part of the PMSEEK package.  PMSEEK reads the
  213.      profile to find out which browse and edit programs to use.  The profile is
  214.      named PMSEEK.PRO.  To find the profile, PMSEEK first looks for a copy in
  215.      your current directory, followed by a search of the directories listed in
  216.      your data path (DPATH), followed by a search of the directories in your
  217.      default path (PATH).  You can find out which directories are in your DPATH
  218.      by typing "DPATH" from the OS/2 command line.  If the profile is not
  219.      found, PMSEEK will try to use FVP.EXE as the Browse program, and E.EXE as
  220.      the edit program.
  221.  
  222.  
  223.      Implementation Notes:
  224.      ------------------------------------------------------------------------
  225.      PMSEEK is not yet complete, but it has reached a point where it may still
  226.      prove useful to others. The most important missing features are:
  227.  
  228.          - Lack of online Help.  The only documentation currently available
  229.            is this file. However, the program is fairly easy to use.
  230.  
  231.  
  232.      PMSEEK Limitations:
  233.      ------------------------------------------------------------------------
  234.      PMSEEK can only display 64K worth of information in the 'Files Found'
  235.      listbox.  This is due to a Presentation Manager restriction on the
  236.      amount of data a listbox can hold.
  237.  
  238. |    What's New in PMSEEK:
  239.      ------------------------------------------------------------------------
  240.      10/26/89 - V1.00 - Initial public release.
  241.      11/02/89 - V1.10 - allow abort of search by clicking on CANCEL.
  242.                       - allow passing search parm upon entry to PMSEEK.
  243.                       - no longer "hogs" system... now checks msg queue during
  244.                         search so that user can switch to other windows... ie
  245.                         PMSEEK will now run in the background.  V1.00 didn't.
  246.                       - fixed possible file count bug.
  247.                       - made the screens somewhat clearer.
  248.                       - improved error messages.
  249.      11/06/89 - V1.20 - improved wildcard search capability.  Earlier versions
  250.                         could only support 'DOS-compatible' wild card searches
  251.                         due to limitations in OS/2's DosFindFirst() function.
  252.                         Leading asterisks, or asterisks imbedded within a
  253.                         filename were not handled.  V1.20 has a much more
  254.                         general filename pattern-matching capability, akin to
  255.                         GSEE.
  256.      11/06/89 - V1.21 - Cleaned up PMSEEK internal structure
  257.      11/07/89 - V1.22 - PMSEEK was not handling all wildcard patterns correctly
  258.                       - Small performance improvements...loop tuning.
  259.      11/08/89 - V1.23 - If root subdirectory specified in searcharg, PMSEEK did
  260.                         not correctly parse out the fn.ext from the path.  It
  261.                         does now.
  262.      11/09/89 - V1.30 - Improved doc in the AVAIL file
  263.                       - drive now included in search status information
  264.                       - if DPATH profile search fails, search PATH next before
  265.                         issuing warning message.
  266.                       - now restores original default drive following search.
  267.                       - allows search arguments up to 79 characters long.
  268.      11/13/89 - V1.31 - small performance improvements, loop tuning.
  269.      11/14/89 - V1.40 - now allow explicit multi-disk searching.  Specifying the
  270.                         drive as *: will still search ALL drives, but you can now
  271.                         request, for example, searching ACD: and only drives A:
  272.                         C: and D: will be searched.
  273.      11/15/89 - V1.41 - v1.40 had an invalid pointer error that caused an abend.
  274.                       - Improved handling of diskette/disk drive errors.
  275.      11/21/89 - V1.50 - now has a "command" radio button, allowing execution
  276.                         of commands against the selected file, allowing users
  277.                         to copy, rename, erase, etc, via PMSEEK.
  278.                       - can now execute .CMD files (earlier releases would fail
  279.                         if you tried).  This works because we now start other
  280.                         programs executing thru the OS/2 CMD interface.
  281.                       - you can now specify .CMD files as your browse and edit
  282.                         programs in PMSEEK.PRO.  Earlier releases would fail if
  283.                         browse and edit programs were not .EXE files.  This new
  284.                         feature allows sites to "front-end" the programs called
  285.                         in PMSEEK.PRO.
  286.      11/22/89 - V2.00 - now allows selection of multiple listbox items.
  287.                       - fixed v1.50 "System Cannot find drive or path" error
  288.                       - no longer tabs to SAVE or CANCEL buttons (can arrow-key
  289.                         to them still).
  290.      11/27/89 - V2.01 - v2.00 also "improved" PMSEEK.PRO handling.  A bug caused
  291.                         the edit program to not be executed properly.  It's now
  292.                         fixed.
  293.      11/27/89 - V2.02 - Earlier versions were failing to locate files with no .ext
  294.                       - DosChDir() failure fixed when long subdir search was followed
  295.                         by a search of shorter subdir.
  296.      12/05/89 - V2.03 - Versions 2.0x were not checking for interrupts (mouse clicks)
  297.                         on the msg queue at the correct intervals.  This sometimes
  298.                         made it difficult (or impossible) to break out of a long
  299.                         search.  Now fixed.
  300.      12/08/89 - V2.10 - Versions 2.0x would try to execute something if there was a
  301.                         double-click, but no list item was hilighted (something
  302.                         that can happen because of multi-selection listboxes).  We
  303.                         now make sure that a listbox item was highlighted before
  304.                         trying to execute anything at double-click time.
  305.                       - Some PMSEEK.PRO files were not interpreted properly due
  306.                         to a subtle strncpy error in ReadProfile() function.
  307.                       - Browse program was being executed in background, due to
  308.                         some test code that was inadvertently left in v2.0x.
  309.                         Now runs Browse in foreground.
  310.                       - Neatened up the dialog display a little
  311.      01/11/90 - v2.11 - WinDismissDlg() may have caused WINMANPM some problems...
  312.                         now doing WinDestroyWindow() instead.
  313.      04/30/90 - v2.20 - Eliminated the main window, requiring less user interaction.
  314.                         This also improves PMSEEK for users with VGA.
  315.                       - Auto-minimize the application at startup
  316.                       - Added an animated icon for amusement
  317.      05/01/90 - v2.21 - sets focus on the data entry field by default
  318.      05/04/90 - v3.00 - Major upgrade, for OS/2 release 1.2 users only!
  319.                       - "Hits" listbox now uses mono-spaced fonts
  320.                       - "Hits" display includes file date, time, size
  321.                       - Dialog window width increased to accomodate extra listbox info
  322.                       - "Hits" in list are sorted in date-descending order
  323.      05/07/90 - v3.10 - resizing of PMSEEK search dialog now supported
  324.                       - listbox automatically resizes to fit dialog window to
  325.                         allow users to display hits with long file names.
  326.                       - / now supported (in addition to @) as substitution char
  327.                       - MAXIMIZE keyword now supported in PMSEEK.PRO
  328.      05/18/90 - v3.11 - Entry field now maintains it's focus
  329.                       - Listbox now maintains it's size better
  330.      05/29/90 - v3.12 - PMSEEK sometimes set focus unnecessarily
  331.      06/05/90 - v3.20 - PMSEEK no longer starts a separate session for each
  332.                         command being executed.  This speeds up command
  333.                         execution and makes error detection more reliable.
  334.                       - Now beeps after double-clicking on listbox item
  335.                       - QUIET keyword in PMSEEK.PRO supported to disable beeping
  336.      07/13/90 - v4.00 - Text search capability added
  337.                       - Version info moved to "About" box
  338.                       - Prompt user if no filename search argument entered
  339.      07/16/90 - v4.01 - tab key stops re-ordered to match field order
  340.                       - entry field gets cursor focus at startup
  341.                       - entry field labels shortened for VGA
  342.                       - tab key now stops at "hits" listbox
  343.                       - greyed-out help (and some non-working stub code)
  344.      07/23/90 - v4.10 - improved text search speed roughly 40% by implementing
  345.                         a variation of the Boyer-Moore string search algorithm.
  346.      08/07/90 - v4.11 - text search occasionally missed valid matches; fixed.
  347.      09/07/90 - v4.12 - changed internal structures to allow longer filenames.
  348.      09/20/90 - v4.13 - added Horizontal scroll bar to "hits" listbox.
  349.                         Note: required LS_HORZSCROLL in resource file (.RC) AND
  350.                               a call to WinSetWindowULong (??) to enable
  351.      10/01/90 - v4.20 - Drag and Drop support added;  See above for usage info.
  352.      10/04/90 - v4.21 - PMSEEK no longer converts command strings to upper case.
  353.      01/04/91 - v4.30 - Added Search options:
  354.                         Enable/Disable Subdir Searching
  355.                         Enable/Disable display of text "hit" data
  356.                         Enable/Disable text search case sensitivity
  357.  
  358.      ------------------------------------------------------------------------
  359.  
  360.      Author: David Slauson (SLAUSON at YKTVMV)
  361.